Certain applications can support mashup capabilities, permitting users to combine components of different applications onto one page or workspace. For example, a user may select a particular component of one application and insert the component into a second application. The combined components can be called mashup components because the components are capable of being “mashed up,” or collected in a customized arrangement, on a page or workspace. The page typically has a layout used to define the visual order of “mashable” applications or components. Further, data flows can be defined between mashable applications by connecting the input ports or output ports of these applications. In this way, a user of mashup applications can customize a page or workspace with only components that the user needs or desires.
Mashup components are applications that can be combined with other applications or processes to create a new service or to enhance existing applications with additional features. In a typical mashup environment, different applicative elements of the mashup components can be linked, which requires defining a contextual connection between the elements before data or events can be properly exchanged between the mashup components. The mashup components, however, can come from different sources or be implemented using different technologies. In some instances, mashup components developed from different technologies require different interfaces for input or output of data. Thus, defining a connection between elements of mashup components with different interfacing technologies may require development of bridges between the technologies. The different technologies associated with each mashup component may require an interface in a specific domain language, creating difficulties in defining contextual connections between mashup components that provide added value to a mashup environment. Further, users of mashup components may not have the technical knowledge to define or manage connections between mashup components of different interfaces.